-
Notifications
You must be signed in to change notification settings - Fork 79
add ecosystem. #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
add ecosystem. #405
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @bearslyricattack, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request significantly expands the Volcano project's documentation by introducing new guides for integrating with several popular AI/ML and workflow orchestration frameworks. It also enriches existing documentation with advanced features and tools, aiming to provide users with more comprehensive resources for leveraging Volcano's capabilities in diverse computing environments.
Highlights
- New Ecosystem Integrations: Added comprehensive documentation for integrating and running various AI/ML and workflow frameworks (MXNet, Argo, Cromwell, Horovod, PyTorch, Ray) on Volcano, providing detailed setup instructions and examples for each.
- Kubeflow Documentation Enhancement: Enhanced the existing Kubeflow on Volcano documentation with new sections covering gang scheduling support and the usage of the Arena command-line tool for managing Volcano jobs, offering more advanced operational guidance.
- Multilingual Documentation: Provided both English and Chinese versions for all newly added and updated documentation, ensuring broader accessibility for the Volcano community.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
Signed-off-by: 抒情熊 <[email protected]>
6c8fddf to
1d4f5b1
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds documentation for integrating Volcano with various ecosystem projects. The review focuses on improving consistency, correctness, and clarity across the new markdown files. Identified areas for improvement include conflicting sidebar weights, incorrect code block formatting, typos in YAML examples, and inconsistent styling. Addressing these points will enhance the quality and readability of the documentation.
| + - --gang-scheduler-name=volcano | ||
| image: kubeflow/training-operator | ||
| name: training-operator | ||
| ... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code block contains leftover diff syntax (diff... and +) which can be confusing for readers. Please show the final configuration instead of a diff.
| + - --gang-scheduler-name=volcano | |
| image: kubeflow/training-operator | |
| name: training-operator | |
| ... | |
| - --gang-scheduler-name=volcano | |
| image: kubeflow/training-operator | |
| name: training-operator |
| resources: | ||
| requests: | ||
| cpu: "100m" | ||
| restartPolicy: OnFailurer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| + - --gang-scheduling=volcano | ||
| - -alsologtostderr | ||
| - --lock-namespace=mpi-operator | ||
| image: mpioperator/mpi-operator:0.4.0 | ||
| name: mpi-operator |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This code block contains leftover diff syntax (diff... and +) which can be confusing for readers. Please show the final configuration instead of a diff.
| + - --gang-scheduling=volcano | |
| - -alsologtostderr | |
| - --lock-namespace=mpi-operator | |
| image: mpioperator/mpi-operator:0.4.0 | |
| name: mpi-operator | |
| - --gang-scheduling=volcano | |
| - -alsologtostderr | |
| - --lock-namespace=mpi-operator | |
| image: mpioperator/mpi-operator:0.4.0 | |
| name: mpi-operator |
| Here is an example YAML for creating a Volcano Job using Argo Workflow: | ||
| ```yaml | ||
| yamlapiVersion: argoproj.io/v1alpha1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| @@ -0,0 +1,90 @@ | |||
| # Ray on Volcano | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 1. Download the RayCluster example configuration that supports Volcano scheduling: | ||
|
|
||
| ```bash | ||
| bashcurl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The bash prefix in this line is incorrect and will be rendered as part of the code. Please remove it.
| bashcurl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml | |
| curl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml |
| 2. Apply the configuration to create the RayCluster: | ||
|
|
||
| ```bash | ||
| bashkubectl apply -f ray-cluster.volcano-scheduler.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 3. Verify the cluster status: | ||
|
|
||
| ```bash | ||
| bashkubectl get pod -l ray.io/cluster=test-cluster-0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| Combining MXNet with Volcano allows you to fully leverage Kubernetes' container orchestration capabilities and Volcano's batch scheduling functionality to achieve efficient distributed training. | ||
|
|
||
| Click [here](https://github.com/apache/mxnet/blob/master/example/distributed_training-horovod/gluon_mnist.py) to view the example provided by the MXNet team. This directory contains the following files: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link text "here" is not very descriptive. For better accessibility and clarity, it's best to use text that describes the link's destination.
| Click [here](https://github.com/apache/mxnet/blob/master/example/distributed_training-horovod/gluon_mnist.py) to view the example provided by the MXNet team. This directory contains the following files: | |
| Click [here to view the example](https://github.com/apache/mxnet/blob/master/example/distributed_training-horovod/gluon_mnist.py) provided by the MXNet team. This directory contains the following files: |
|
|
||
| 接下来即可使用 Volcano 和 KubeRay 协同工作。如果要查看详细信息,请查看[链接](https://docs.ray.io/en/master/cluster/kubernetes/k8s-ecosystem/volcano.html)了解更多。 | ||
|
|
||
| #### |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| [menu.docs] | ||
| parent = "zoology" | ||
| weight = 6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| [menu.docs] | |
| parent = "zoology" | |
| weight = 6 | |
| [menu.docs] | |
| parent = "ecosystem" | |
| weight = 6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds documentation for integrating various AI/ML frameworks and workflow tools with Volcano, expanding the ecosystem documentation. The documentation is provided in both Chinese and English.
- Adds integration guides for Ray, PyTorch, Horovod, Argo, Cromwell, and MXNet with Volcano
- Updates the Kubeflow on Volcano documentation with gang scheduling and Arena sections
- Provides code examples and configuration details for each integration
Reviewed Changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 28 comments.
Show a summary per file
| File | Description |
|---|---|
| content/zh/docs/ray_on_volcano.md | New Chinese documentation for Ray integration with KubeRay operator installation and configuration |
| content/en/docs/ray_on_volcano.md | New English documentation for Ray integration with KubeRay operator installation and configuration |
| content/zh/docs/pytorch_on_volcano.md | New Chinese documentation for PyTorch plugin support in Volcano |
| content/en/docs/pytorch_on_volcano.md | New English documentation for PyTorch plugin support in Volcano |
| content/zh/docs/kubeflow_on_volcano.md | Updated with gang scheduling section and Arena CLI examples |
| content/en/docs/kubeflow_on_volcano.md | Updated with gang scheduling section and Arena CLI examples |
| content/zh/docs/horovod_on_volcano.md | New Chinese documentation for Horovod distributed training on Volcano |
| content/en/docs/horovod_on_volcano.md | New English documentation for Horovod distributed training on Volcano |
| content/zh/docs/cromwell_on_volcano.md | New Chinese documentation for Cromwell workflow integration |
| content/en/docs/cromwell_on_volcano.md | New English documentation for Cromwell workflow integration |
| content/zh/docs/argo_on_volcano.md | New Chinese documentation for Argo Workflows integration |
| content/en/docs/argo_on_volcano.md | New English documentation for Argo Workflows integration |
| content/zh/docs/MXNet_on_volcano.md | New Chinese documentation for MXNet distributed training |
| content/en/docs/MXNet_on_volcano.md | New English documentation for MXNet distributed training |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| 在 values.yaml 文件中设置 Volcano 作为批量调度器: | ||
|
|
||
| ```yaml | ||
| yaml# values.yaml 文件 |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'yaml' instead of just the identifier. Remove the 'yaml' prefix from line 42 so it reads just '# values.yaml 文件'.
| yaml# values.yaml 文件 | |
| # values.yaml 文件 |
| 然后使用此配置文件安装 Helm chart: | ||
| ```bash | ||
| bashhelm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 -f values.yaml |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'bash' instead of just the command. Remove the 'bash' prefix from line 50 so it reads just 'helm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 -f values.yaml'.
| bashhelm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 -f values.yaml | |
| helm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 -f values.yaml |
| 直接在 Helm 安装命令中通过 --set 参数指定批量调度器: | ||
|
|
||
| ```bash | ||
| bashhelm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 --set batchScheduler.name=volcano |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'bash' instead of just the command. Remove the 'bash' prefix from line 58 so it reads just 'helm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 --set batchScheduler.name=volcano'.
| bashhelm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 --set batchScheduler.name=volcano | |
| helm install kuberay-operator kuberay/kuberay-operator --version 1.4.2 --set batchScheduler.name=volcano |
| 1. 下载支持 Volcano 调度的 RayCluster 示例配置: | ||
|
|
||
| ```bash | ||
| bashcurl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'bash' instead of just the command. Remove the 'bash' prefix from line 70 so it reads just 'curl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml'.
| bashcurl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml | |
| curl -LO https://raw.githubusercontent.com/ray-project/kuberay/v1.4.2/ray-operator/config/samples/ray-cluster.volcano-scheduler.yaml |
| 2. 应用配置创建 RayCluster: | ||
|
|
||
| ```bash | ||
| bashkubectl apply -f ray-cluster.volcano-scheduler.yaml |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'bash' instead of just the command. Remove the 'bash' prefix from line 76 so it reads just 'kubectl apply -f ray-cluster.volcano-scheduler.yaml'.
| bashkubectl apply -f ray-cluster.volcano-scheduler.yaml | |
| kubectl apply -f ray-cluster.volcano-scheduler.yaml |
| yaml- apiGroups: | ||
| - batch.volcano.sh | ||
| resources: | ||
| - "*" | ||
| verbs: | ||
| - "*" |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'yaml' instead of just the identifier. Remove the 'yaml' prefix from line 44 so it reads just '- apiGroups:'.
| 以下是使用Argo Workflow创建Volcano Job的示例YAML: | ||
| ```yaml | ||
| yamlapiVersion: argoproj.io/v1alpha1 |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'yaml' instead of just the identifier. Remove the 'yaml' prefix from line 57 so it reads just 'apiVersion: argoproj.io/v1alpha1'.
| yamlapiVersion: argoproj.io/v1alpha1 | |
| apiVersion: argoproj.io/v1alpha1 |
| resources: | ||
| requests: | ||
| cpu: "100m" | ||
| restartPolicy: OnFailurer |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected spelling of 'OnFailurer' to 'OnFailure'.
| restartPolicy: OnFailurer | |
| restartPolicy: OnFailure |
| yaml- apiGroups: | ||
| - batch.volcano.sh | ||
| resources: | ||
| - "*" | ||
| verbs: | ||
| - "*" |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'yaml' instead of just the identifier. Remove the 'yaml' prefix from line 46 so it reads just '- apiGroups:'.
| Here is an example YAML for creating a Volcano Job using Argo Workflow: | ||
| ```yaml | ||
| yamlapiVersion: argoproj.io/v1alpha1 |
Copilot
AI
Nov 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code fence has language identifier prefixed with 'yaml' instead of just the identifier. Remove the 'yaml' prefix from line 59 so it reads just 'apiVersion: argoproj.io/v1alpha1'.
| yamlapiVersion: argoproj.io/v1alpha1 | |
| apiVersion: argoproj.io/v1alpha1 |
What this PR does / why we need it:
Which issue(s) this PR fixes: